package com.xxg.renrencommon.domain.filedenum.productenum;

/**
 * 类说明
 *
 * @author szj
 * @date 2021/12/8
 */
public enum ProductOptEnum {
    /**
     * 带货
     */
    CARRY("optInfo","carry", "optFlag", 1),
    /**
     * 采集
     */
    GATHER("optInfo","gather", "optFlag", 2),
    ;

    /**
     * 实体的字段名
     */
    private final String name;
    /**
     * 枚举的代码
     */
    private final String value;
    /**
     * 标记的字段名
     */
    private final String flagName;
    /**
     * 标记值
     */
    private final int flag;

    ProductOptEnum(String name, String value, String flagName, Integer flag) {
        this.name = name;
        this.value = value;
        this.flag = flag;
        this.flagName = flagName;
    }

    public String getName() {
        return name;
    }

    public String getValue() {
        return value;
    }

    public String getFlagName() {
        return flagName;
    }

    public Integer getFlag() {
        return flag;
    }

    /**
     * 比较值
     *
     * @param value 需比较参数
     * @return 是否匹配
     */
    public boolean match(String value) {
        return this.value.equals(value);
    }

    /**
     * 比较标记
     *
     * @param flag 需比较参数
     * @return 是否匹配
     */
    public boolean match(Integer flag) {
        return flag != null && this.flag == flag;
    }

    @Override
    public String toString() {
        return this.value + "_" + this.name;
    }
}
